package com.nd.android.u.ui.chatUiUtils;

import java.util.HashMap;

import android.text.TextUtils;

import com.nd.android.u.chatInterfaceImpl.ChatInterfaceImpl;

/**
 * ClassName:UnSendMessageManager
 * Function: 聊天界面未发送消息的缓存管理
 * Reason:	 
 * @author   cb		
 * @version  Ver 1.0.0
 * @Date	 2014	2014-4-9		下午4:03:25
 *
 * @see 	 
 */
public enum UnSendMessageManager {
	INSTANCE;
	private HashMap<String, String> mUnsendMessageMaps=new HashMap<String, String>(); 
	/**
	 * @n<b>函数名称</b>     :getUnsendMessage
	 * @brief 根据好友UID获取未发送的消息
	 * @version    Ver 1.0.0
	 * @param  @param fid
	 * @param  @return
	 * @return String
	 * @<b>作者</b>          :  cb
	 * @<b>创建时间</b>      :  2014-4-9下午4:04:01      
	*/
	public String getUnsendMessage(long fid){
		String key=ChatInterfaceImpl.INSTANCE.chatCallOtherModel.getUapUid()+","+fid;
		if (mUnsendMessageMaps.containsKey(key)){
			return mUnsendMessageMaps.get(key);
		}
		return null;
	}
	
	/**
	 * @n<b>函数名称</b>     :put
	 * @brief 保存未发送的消息（群和个人消息都用这个方法，当群的ID和个人的UID相同的时候就会出现错乱，但是出现这种情况的机率可以忽略不计)
	 * @version    Ver 1.0.0
	 * @param  @param fid
	 * @param  @param message
	 * @return void
	 * @<b>作者</b>          :  cb
	 * @<b>创建时间</b>      :  2014-4-9下午4:04:12      
	*/
	public void put(long fid,String message){
		String key=ChatInterfaceImpl.INSTANCE.chatCallOtherModel.getUapUid()+","+fid;
		if (mUnsendMessageMaps.containsKey(key)){
			mUnsendMessageMaps.remove(key);
		}
		if (!TextUtils.isEmpty(message)){
			//只有非空的消息才往缓存里写
			mUnsendMessageMaps.put(key, message);	
		}
	}
	
	/**
	 * @n<b>函数名称</b>     :clear
	 * @brief 清空缓存
	 * @version    Ver 1.0.0
	 * @param  
	 * @return void
	 * @<b>作者</b>          :  cb
	 * @<b>创建时间</b>      :  2014-4-9下午4:04:38      
	*/
	public void clear(){
		mUnsendMessageMaps.clear();
	}
}
